home *** CD-ROM | disk | FTP | other *** search
/ Internet.Works 41 / Issue 41.iso / pc / PCSoftware / MDaemon Server / mdsetupa.exe / MDUSERIMPORTS.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  2000-10-16  |  8.9 KB  |  294 lines

  1. #ifndef MDUSER_DLL
  2.  
  3. #include <stdio.h>
  4. #include "MDUserImports.h"
  5.  
  6. HINSTANCE hMDUSER = NULL;
  7. bool MDUserDllLoaded = false;
  8.  
  9. MD_FlagReloadUsersP            MD_FlagReloadUsers;
  10. MD_InitMessageInfoP         MD_InitMessageInfo;
  11. MD_GetSharedUserInfoP        MD_GetSharedUserInfo;
  12. MD_VerifyMessageInfoP        MD_VerifyMessageInfo;
  13. MD_SpoolMessageP            MD_SpoolMessage;
  14. MD_GetDomainNamesP            MD_GetDomainNames;
  15. MD_GetDomainCountP            MD_GetDomainCount;
  16. MD_GetDomainNameUsingIPP    MD_GetDomainNameUsingIP;
  17. MD_FilterStringP            MD_FilterString;
  18. MD_FilterUserInfoP            MD_FilterUserInfo;
  19. MD_RegisterWindowP            MD_RegisterWindow;
  20. MD_UnregisterWindowP        MD_UnregisterWindow;
  21. MD_ReloadUsersP             MD_ReloadUsers;
  22. MD_GetAppDirP                MD_GetAppDir;
  23. MD_SetIsMDConfigP            MD_SetIsMDConfig;
  24. MD_GetDBPathP                MD_GetDBPath;
  25. MD_InitUserInfoP            MD_InitUserInfo;
  26. MD_AddUserP                 MD_AddUser;
  27. MD_ChangeUserP                MD_ChangeUser;
  28. MD_DeleteUserP                MD_DeleteUser;
  29. MD_VerifyUserInfoP            MD_VerifyUserInfo;
  30. MD_UserCountP                MD_UserCount;
  31. MD_IsProVersionP            MD_IsProVersion;
  32. MD_FindFirstP                MD_FindFirst;
  33. MD_FindNextP                MD_FindNext;
  34. MD_FindCloseP                MD_FindClose;
  35. MD_FindFirstRuleP            MD_FindFirstRule;
  36. MD_FindNextRuleP            MD_FindNextRule;
  37. MD_GetEditIMAPRulesP        MD_GetEditIMAPRules; 
  38. MD_SetEditIMAPRulesP        MD_SetEditIMAPRules;
  39. MD_ReadRuleP                MD_ReadRule;    
  40. MD_MoveRuleUpP                MD_MoveRuleUp;
  41. MD_MoveRuleDownP            MD_MoveRuleDown;
  42. MD_RuleStructToRuleStringP  MD_RuleStructToRuleString;
  43. MD_RuleStringToRuleStructP  MD_RuleStringToRuleStruct;
  44. MD_AddRuleP                 MD_AddRule; 
  45. MD_DeleteRuleP                MD_DeleteRule;
  46. MD_ChangeRuleP                MD_ChangeRule;
  47. MD_GetIMAPFoldersP            MD_GetIMAPFolders;
  48. MD_CreateIMAPFolderP        MD_CreateIMAPFolder;
  49. MD_ValidateUserP            MD_ValidateUser;
  50. MD_LogonUserP                MD_LogonUser;
  51. MD_GetByAliasP                MD_GetByAlias;
  52. MD_UserExistsP                MD_UserExists;
  53. MD_GetByEmailP                MD_GetByEmail;
  54. MD_GetByFullNameP            MD_GetByFullName;
  55. MD_GetByMailboxP            MD_GetByMailbox;
  56. MD_GetByMailDirP            MD_GetByMailDir;
  57. MD_GetFreeP                 MD_GetFree;
  58. MD_GetUserInfoP             MD_GetUserInfo;
  59. MD_SetUserInfoP             MD_SetUserInfo;
  60. MD_GetEmailP                MD_GetEmail;
  61. MD_GetMailboxP                MD_GetMailbox;
  62. MD_SetMailboxP                MD_SetMailbox;
  63. MD_GetDomainP                MD_GetDomain;
  64. MD_SetDomainP                MD_SetDomain;
  65. MD_GetFullNameP             MD_GetFullName;
  66. MD_SetFullNameP             MD_SetFullName;
  67. MD_GetMailDirP                MD_GetMailDir;
  68. MD_SetMailDirP                MD_SetMailDir;
  69. MD_GetPasswordP             MD_GetPassword;
  70. MD_SetPasswordP             MD_SetPassword;
  71. MD_GetAutoDecodeP            MD_GetAutoDecode;
  72. MD_SetAutoDecodeP            MD_SetAutoDecode;
  73. MD_GetIsForwardingP         MD_GetIsForwarding;
  74. MD_SetIsForwardingP         MD_SetIsForwarding;
  75. MD_GetAllowAccessP            MD_GetAllowAccess;
  76. MD_SetAllowAccessP            MD_SetAllowAccess;
  77. MD_GetAllowChangeViaEmailP    MD_GetAllowChangeViaEmail;
  78. MD_SetAllowChangeViaEmailP    MD_SetAllowChangeViaEmail;
  79. MD_GetKeepForwardedMailP    MD_GetKeepForwardedMail;
  80. MD_SetKeepForwardedMailP    MD_SetKeepForwardedMail;
  81. MD_GetHideFromEveryoneP     MD_GetHideFromEveryone;
  82. MD_SetHideFromEveryoneP     MD_SetHideFromEveryone;
  83. MD_GetEncryptMailP            MD_GetEncryptMail;
  84. MD_SetEncryptMailP            MD_SetEncryptMail;
  85. MD_GetApplyQuotasP            MD_GetApplyQuotas;
  86. MD_SetApplyQuotasP            MD_SetApplyQuotas;
  87. MD_GetEnableMultiPOPP        MD_GetEnableMultiPOP;
  88. MD_SetEnableMultiPOPP        MD_SetEnableMultiPOP;
  89. MD_GetLocalOnlyP            MD_GetLocalOnly;
  90. MD_SetLocalOnlyP            MD_SetLocalOnly;
  91. MD_GetMaxDiskSpaceP         MD_GetMaxDiskSpace;
  92. MD_SetMaxDiskSpaceP         MD_SetMaxDiskSpace;
  93. MD_GetMaxMessageCountP        MD_GetMaxMessageCount;
  94. MD_SetMaxMessageCountP        MD_SetMaxMessageCount;
  95. MD_GetForwardingInfoP        MD_GetForwardingInfo;
  96. MD_SetForwardingInfoP        MD_SetForwardingInfo;
  97. MD_GetAutoRespInfoP            MD_GetAutoRespInfo;
  98. MD_SetAutoRespInfoP            MD_SetAutoRespInfo;
  99. MD_EraseAutoRespP            MD_EraseAutoResp;
  100. MD_UpdateAutoRespDomainsP   MD_UpdateAutoRespDomains;
  101. MD_GetMailFormatP            MD_GetMailFormat;
  102. MD_SetMailFormatP            MD_SetMailFormat;
  103. MD_GetSignatureFileP        MD_GetSignatureFile;
  104. MD_SetSignatureFileP        MD_SetSignatureFile;
  105. MD_GetFileCountP            MD_GetFileCount;
  106. MD_GetDirSizeP                MD_GetDirSize;
  107. MD_GetWebConfigBitP         MD_GetWebConfigBit;
  108. MD_GetWebConfigBitsP        MD_GetWebConfigBits;
  109. MD_SetWebConfigBitP         MD_SetWebConfigBit;
  110. MD_SetWebConfigBitsP        MD_SetWebConfigBits;
  111. MD_IsDynamicPasswordStrP    MD_IsDynamicPasswordStr;
  112. MD_GetMaxUIDLCountP         MD_GetMaxUIDLCount;
  113. MD_SetMaxUIDLCountP         MD_SetMaxUIDLCount;
  114. MD_GetMaxMessageSizeP        MD_GetMaxMessageSize;
  115. MD_SetMaxMessageSizeP        MD_SetMaxMessageSize;
  116. MD_AddToLdapAddrBookP       MD_AddToLdapAddrBook;
  117.  
  118. #define GET_FUNC(s) s## = (s##P) GetProcAddress(hMDUSER, #s); result &= (s## != NULL);
  119.  
  120. bool LoadMDUserDll(char* MDUserDll, bool LoadUsers, bool IgnoreFail)
  121. {
  122.     int Num;
  123.     return LoadMDUserDll(Num, MDUserDll, LoadUsers, IgnoreFail);
  124. }
  125.  
  126. bool LoadMDUserDll(int& Result, char* MDUserDll, bool LoadUsers, bool IgnoreFail)
  127. {
  128.     Result = 0;
  129.  
  130.     if (MDUserDll == NULL)
  131.     {
  132.         char DllPath[MAX_PATH];
  133.         GetModuleFileName(NULL, DllPath, sizeof(DllPath));
  134.       char* ptr = strrchr(DllPath, '\\');
  135.       if (ptr) ptr[0] = '\0';
  136.  
  137.       char SetupFile[MAX_PATH+1];
  138.       sprintf(SetupFile, "%s\\"MDUSERDLL_DEFMDAEMONINIDB, DllPath);
  139.  
  140.         char DllType[16];
  141.         GetPrivateProfileString("Advanced", "UserDllType", "", DllType, sizeof(DllType), SetupFile);
  142.  
  143.         char Dll[MAX_PATH];
  144.         sprintf(Dll, "%s\\MDUser%s.dll", DllPath, DllType);
  145.  
  146.         hMDUSER = LoadLibrary(Dll);
  147.     }
  148.     else
  149.         hMDUSER = LoadLibrary(MDUserDll);
  150.  
  151.     if (hMDUSER == NULL)
  152.      {
  153.         Result = GetLastError();
  154.         return false;
  155.      }
  156.  
  157.     bool result = true;
  158.  
  159.     GET_FUNC(MD_FlagReloadUsers);
  160.     GET_FUNC(MD_InitMessageInfo)
  161.     GET_FUNC(MD_GetSharedUserInfo)
  162.     GET_FUNC(MD_VerifyMessageInfo)
  163.     GET_FUNC(MD_SpoolMessage)
  164.     GET_FUNC(MD_GetDomainNames)
  165.     GET_FUNC(MD_GetDomainCount)
  166.     GET_FUNC(MD_GetDomainNameUsingIP)
  167.     GET_FUNC(MD_FilterString)
  168.     GET_FUNC(MD_FilterUserInfo)
  169.     GET_FUNC(MD_RegisterWindow)
  170.     GET_FUNC(MD_UnregisterWindow)
  171.     GET_FUNC(MD_ReloadUsers)
  172.     GET_FUNC(MD_GetAppDir)
  173.     GET_FUNC(MD_SetIsMDConfig)
  174.     GET_FUNC(MD_GetDBPath)
  175.     GET_FUNC(MD_InitUserInfo)
  176.     GET_FUNC(MD_AddUser)
  177.     GET_FUNC(MD_ChangeUser)
  178.     GET_FUNC(MD_DeleteUser)
  179.     GET_FUNC(MD_VerifyUserInfo)
  180.     GET_FUNC(MD_UserCount)
  181.     GET_FUNC(MD_IsProVersion)
  182.     GET_FUNC(MD_FindFirst)
  183.     GET_FUNC(MD_FindNext)
  184.     GET_FUNC(MD_FindClose)
  185.     GET_FUNC(MD_FindFirstRule)
  186.     GET_FUNC(MD_FindNextRule)
  187.     GET_FUNC(MD_GetEditIMAPRules)
  188.     GET_FUNC(MD_SetEditIMAPRules)
  189.     GET_FUNC(MD_ReadRule)
  190.     GET_FUNC(MD_MoveRuleUp)
  191.     GET_FUNC(MD_MoveRuleDown)
  192.     GET_FUNC(MD_RuleStringToRuleStruct)
  193.     GET_FUNC(MD_RuleStructToRuleString)
  194.     GET_FUNC(MD_AddRule)
  195.     GET_FUNC(MD_DeleteRule)
  196.     GET_FUNC(MD_ChangeRule)
  197.     GET_FUNC(MD_GetIMAPFolders)
  198.     GET_FUNC(MD_CreateIMAPFolder)
  199.     GET_FUNC(MD_ValidateUser)
  200.     GET_FUNC(MD_LogonUser)
  201.     GET_FUNC(MD_GetByAlias)
  202.     GET_FUNC(MD_UserExists)
  203.     GET_FUNC(MD_GetByEmail)
  204.     GET_FUNC(MD_GetByFullName)
  205.     GET_FUNC(MD_GetByMailbox)
  206.     GET_FUNC(MD_GetByMailDir)
  207.     GET_FUNC(MD_GetFree)
  208.     GET_FUNC(MD_GetUserInfo)
  209.     GET_FUNC(MD_SetUserInfo)
  210.     GET_FUNC(MD_GetEmail)
  211.     GET_FUNC(MD_GetMailbox)
  212.     GET_FUNC(MD_SetMailbox)
  213.     GET_FUNC(MD_GetDomain)
  214.     GET_FUNC(MD_SetDomain)
  215.     GET_FUNC(MD_GetFullName)
  216.     GET_FUNC(MD_SetFullName)
  217.     GET_FUNC(MD_GetMailDir)
  218.     GET_FUNC(MD_SetMailDir)
  219.     GET_FUNC(MD_GetPassword)
  220.     GET_FUNC(MD_SetPassword)
  221.     GET_FUNC(MD_GetAutoDecode)
  222.     GET_FUNC(MD_SetAutoDecode)
  223.     GET_FUNC(MD_GetIsForwarding)
  224.     GET_FUNC(MD_SetIsForwarding)
  225.     GET_FUNC(MD_GetAllowAccess)
  226.     GET_FUNC(MD_SetAllowAccess)
  227.     GET_FUNC(MD_GetAllowChangeViaEmail)
  228.     GET_FUNC(MD_SetAllowChangeViaEmail)
  229.     GET_FUNC(MD_GetKeepForwardedMail)
  230.     GET_FUNC(MD_SetKeepForwardedMail)
  231.     GET_FUNC(MD_GetHideFromEveryone)
  232.     GET_FUNC(MD_SetHideFromEveryone)
  233.     GET_FUNC(MD_GetEncryptMail)
  234.     GET_FUNC(MD_SetEncryptMail)
  235.     GET_FUNC(MD_GetApplyQuotas)
  236.     GET_FUNC(MD_SetApplyQuotas)
  237.     GET_FUNC(MD_GetEnableMultiPOP)
  238.     GET_FUNC(MD_SetEnableMultiPOP)
  239.     GET_FUNC(MD_GetLocalOnly)
  240.     GET_FUNC(MD_SetLocalOnly)
  241.     GET_FUNC(MD_GetMaxDiskSpace)
  242.     GET_FUNC(MD_SetMaxDiskSpace)
  243.     GET_FUNC(MD_GetMaxMessageCount)
  244.     GET_FUNC(MD_SetMaxMessageCount)
  245.     GET_FUNC(MD_GetForwardingInfo)
  246.     GET_FUNC(MD_SetForwardingInfo)
  247.     GET_FUNC(MD_GetAutoRespInfo)
  248.     GET_FUNC(MD_SetAutoRespInfo)
  249.     GET_FUNC(MD_EraseAutoResp)
  250.     GET_FUNC(MD_UpdateAutoRespDomains)
  251.     GET_FUNC(MD_GetMailFormat)
  252.     GET_FUNC(MD_SetMailFormat)
  253.     GET_FUNC(MD_GetSignatureFile)
  254.     GET_FUNC(MD_SetSignatureFile)
  255.     GET_FUNC(MD_GetFileCount)
  256.     GET_FUNC(MD_GetDirSize)
  257.     GET_FUNC(MD_GetWebConfigBit)
  258.     GET_FUNC(MD_GetWebConfigBits)
  259.     GET_FUNC(MD_SetWebConfigBit)
  260.     GET_FUNC(MD_SetWebConfigBits)
  261.     GET_FUNC(MD_IsDynamicPasswordStr)
  262.     GET_FUNC(MD_GetMaxUIDLCount)
  263.     GET_FUNC(MD_SetMaxUIDLCount)
  264.     GET_FUNC(MD_GetMaxMessageSize)
  265.     GET_FUNC(MD_SetMaxMessageSize)
  266.     GET_FUNC(MD_AddToLdapAddrBook)
  267.  
  268.     if (!result)
  269.     {
  270.         if (!IgnoreFail)
  271.          FreeMDUserDll();
  272.         Result = 1;
  273.     }
  274.     else
  275.         MDUserDllLoaded = true;
  276.  
  277.    if (LoadUsers)
  278.      {
  279.         if (result || IgnoreFail)
  280.            MD_ReloadUsers();
  281.      }
  282.  
  283.     return result;
  284. }
  285.  
  286. void FreeMDUserDll()
  287. {
  288.     MDUserDllLoaded = false;
  289.  
  290.     if (hMDUSER != NULL)
  291.         FreeLibrary(hMDUSER), hMDUSER = NULL;
  292. }
  293.  
  294. #endif